Method and apparatus for generating local motion based on machine learning

ABSTRACT

Apparatuses and methods for generating a local motion of a mobile object based on a machine learning are disclosed. The methods may include determining, by processing circuitry, a local window corresponding to a current position of the mobile object in a global area; generating, by processing circuitry, a local cost map indicating a probability of a collision of the mobile object with an obstacle in the local window; generating, by processing circuitry, a local goal map indicating a local path in the local window between the current position and a local goal in the local window; and determining, by processing circuitry, a target velocity of the mobile object based on output data of a neural network, the output data based on an input of input data to the neural network, the input data including the local cost map, the local goal map, and a current velocity of the mobile object.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims under 35 U.S.C. § 119 to Korean PatentApplication No. 10-2018-0168577, filed on Dec. 24, 2018, in the KoreanIntellectual Property Office, the entire contents of which areincorporated herein by reference in their entirety.

BACKGROUND 1. Field

At least some example embodiments relate to methods and/or apparatusesfor generating a local motion based on machine learning.

2. Description of the Related Art

Recently, to classify an input pattern as a member that belongs to apredetermined group, researchers are actively conducting research onmethods of applying efficient and accurate pattern recognition. One sucharea of research is focused on an artificial neural network. To classifyan input pattern as a member that belongs to a predetermined group, theneural network employs an algorithm that generates a mapping between aninput pattern and an output patterns. The capability of generating sucha mapping may be referred to as a learning capability of the neuralnetwork. Further, the neural network may have a generalizationcapability of generating a relatively accurate output with respect to aninput pattern yet to be used for learning, based on a result oflearning.

SUMMARY

Some example embodiments relate to methods of generating a local motionfor a mobile object.

In some example embodiments, the method may include determining a localwindow corresponding to a current position of the mobile object in aglobal area, generating a local cost map indicating a probability of acollision with an obstacle in the local window, generating a local goalmap indicating a local path in the local window between the currentposition and a local goal in the local window, and determining a targetvelocity of the mobile object based on output data of a neural network,the output data based on an input of input data to the neural network,the input data including the local cost map, the local goal map, and acurrent velocity of the mobile object.

In some example embodiments, a method may further include controllingthe mobile object to move based on the target velocity.

In some example embodiments, a method may further include generating aglobal cost map indicating a probability of a collision with an obstaclein the global area based on map data. The obstacle may be the same asthe obstacle in the local window and/or another obstacle that is notincluded in the local window. The generating of the local cost map mayinclude generating the local cost map based on sensor data associatedwith an obstacle around the mobile object and the global cost map. Insome example embodiments, a method may further include determining aglobal path in the global area between the current position and a globalgoal in the global area based on the global cost map. The generating ofthe local goal map may include generating the local goal map based onthe global path and the local window.

In some example embodiments, a neural network may include a competitivelayer that operates based on pixel values of the local cost map andpixel values of the local goal map. The neural network may include aninput layer that receives pixel values of the local cost map and pixelvalues of the local goal map, a first hidden layer that receives anoutput of the input layer, a second hidden layer that receives an outputof the first hidden layer and the current velocity of the mobile object,and an output layer that generates the output data of the neural networkbased on an output of the second hidden layer.

In some example embodiments, a first hidden layer may be a competitivelayer trained based on a competitive learning. Nodes of the input layermay be fully connected to nodes of the first hidden layer. A number ofthe nodes of the input layer may correspond to a sum of a number ofpixels in the local cost map and a number of pixels in the local goalmap.

In some example embodiments, a neural network may include aconvolutional layer that extracts features from the local cost map andthe local goal map, a fully connected layer that receives an output ofthe convolutional layer and the current velocity of the mobile object,and an output layer that generates the output data of the neural networkbased on an output of the fully connected layer.

In some example embodiments, a neural network may include an input layerthat receives pixel values of the local cost map and pixel values of thelocal goal map, a first competitive layer that receives an output of theinput layer, and a second competitive layer that generates the outputdata of the neural network based on an output of the first competitivelayer. A value in a predetermined range may be represented based on adistribution of the output data of the neural network.

Some other example embodiments may relate to a method of generating alocal motion for a mobile object.

In some example embodiments, a method may include determining, byprocessing circuitry, a local window corresponding to a current positionof a mobile object in a global area; inputting, to a neural network, bythe processing circuitry, input data including a local cost mapindicating a probability of a collision of the mobile object with anobstacle in the local window, a local goal map indicating a local pathin the local window between the current position and a local goal in thelocal window, and a current velocity of the mobile object; anddetermining, by the processing circuitry, a target velocity of themobile object based on output data of the neural network, the outputdata of the neural network based on an input of the input data to theneural network.

In some example embodiments, a method may further include controllingthe mobile object to move based on the target velocity.

Some other example embodiments may relate to an apparatus for generatinga local motion for a mobile object.

In some example embodiments, an apparatus may include processingcircuitry and a memory including an instruction to be read by theprocessing circuitry, wherein when the instruction is executed by theprocessing circuitry, the processing circuitry may be configured todetermine a local window corresponding to a current position of themobile object in a global area; generate a local cost map indicating aprobability of a collision with an obstacle in the local window;generate a local goal map indicating a local path in the local windowbetween the current position and a local goal in the local window; anddetermine a target velocity of the mobile object based on output data ofa neural network, wherein the output data is based on an input of inputdata to the neural network, the input data including the local cost map,the local goal map, and a current velocity of the mobile object.

In some example embodiments, an apparatus may further includecontrolling the mobile object to move based on the target velocity.

Additional aspects of example embodiments will be set forth in part inthe description which follows and, in part, will be apparent from thedescription, or may be learned by practice of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects will become apparent and more readilyappreciated from the following description of example embodiments, takenin conjunction with the accompanying drawings of which:

FIG. 1 illustrates an operation of a local motion generation apparatusaccording to at least one example embodiment;

FIG. 2 is a block diagram illustrating a local motion generationapparatus and devices related to the local motion generation apparatusaccording to at least one example embodiment;

FIG. 3 illustrates a cost map according to at least one exampleembodiment;

FIG. 4 is a graph illustrating a cost associated with a mobile objectaccording to at least one example embodiment;

FIG. 5 illustrates a structure of a neural network according to at leastone example embodiment;

FIG. 6 illustrates a structure of a neural network according to at leastone example embodiment;

FIG. 7 illustrates a structure of a neural network according to at leastone example embodiment;

FIG. 8 illustrates an output map according to at least one exampleembodiment;

FIG. 9 illustrates a path of a mobile object according to at least oneexample embodiment;

FIG. 10 is a block diagram illustrating a training apparatus accordingto at least one example embodiment;

FIG. 11 is a block diagram illustrating a local motion generationapparatus according to at least one example embodiment; and

FIG. 12 is a flowchart illustrating a local motion generation methodaccording to at least one example embodiment.

DETAILED DESCRIPTION

Hereinafter, some example embodiments will be described in detail withreference to the accompanying drawings. Regarding the reference numeralsassigned to the elements in the drawings, it should be noted that thesame elements will be designated by the same reference numerals,wherever possible, even though they are shown in different drawings.Also, in the description of embodiments, detailed description ofwell-known related structures or functions will be omitted when it isdeemed that such description will cause ambiguous interpretation of thepresent disclosure.

It should be understood, however, that there is no intent to limit thisdisclosure to the particular example embodiments disclosed. On thecontrary, example embodiments are to cover all modifications,equivalents, and alternatives falling within the scope of the exampleembodiments. Like numbers refer to like elements throughout thedescription of the figures.

In addition, terms such as first, second, A, B, (a), (b), and the likemay be used herein to describe components. Each of these terminologiesis not used to define an essence, order or sequence of a correspondingcomponent but used merely to distinguish the corresponding componentfrom other component(s). It should be noted that if it is described inthe specification that one component is “connected”, “coupled”, or“joined” to another component, a third component may be “connected”,“coupled”, and “joined” between the first and second components,although the first component may be directly connected, coupled orjoined to the second component.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used herein, thesingular forms “a,” “an,” and “the,” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willbe further understood that the terms “comprises,” “comprising,”“includes,” and/or “including,” when used herein, specify the presenceof stated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

It should also be noted that in some alternative implementations, thefunctions/acts noted may occur out of the order noted in the figures.For example, two figures shown in succession may in fact be executedsubstantially concurrently or may sometimes be executed in the reverseorder, depending upon the functionality/acts involved.

Various example embodiments will now be described more fully withreference to the accompanying drawings in which some example embodimentsare shown. In the drawings, the thicknesses of layers and regions areexaggerated for clarity.

FIG. 1 illustrates an operation of a local motion generation apparatusaccording to at least one example embodiment. A local motion generationapparatus 100 may control a motion of a mobile object. The mobile objectmay be a movable physical object such as a cleaning robot, a socialrobot, a guiding robot, and a logistics robot, or a movable virtualobject, for example, an agent in an environment such as a virtualreality (VR), an augmented reality (AR), and a game. The local motiongeneration apparatus 100 may determine a velocity and/or a path of themobile object based on a destination being input and control the mobileobject based on the determined path and/or velocity.

A velocity of the mobile object may include a translational velocityassociated with a position movement and/or a rotational velocityassociated with a direction and/or orientation change. The translationalvelocity may be denoted by v and the rotational and/or orientationvelocity may be denoted by ω. The velocity of the mobile object may beclassified into a current velocity and a target velocity. The currentvelocity may indicate a measured and/or estimated velocity correspondingto a current movement of the mobile object. The target velocity mayindicate a velocity to which the mobile object is controlled, forexample, to follow a path from the current position to a position of agoal. The current velocity may include a current translational velocityand/or a current rotational velocity. The target velocity may include atarget translational velocity and/or a target rotational velocity. Thelocal motion generation apparatus 100 may determine a path between acurrent position of the mobile object and a desired destination, and/ormay set (e.g., continuously, periodically, and/or occasionally) thetarget velocity based on the current velocity such that the mobileobject moves along the determined path.

The term “state” of the mobile object may be used below. A state of themobile object may include a position of the mobile object and/or a poseof the mobile object. The position of the mobile object may berepresented by coordinates, for example, (x, y). The pose of the mobileobject may be represented by an angle, for example, θ, which mayrepresent a direction and/or orientation of the mobile object. The stateof the mobile object may be classified into a current state and a targetstate. The current state may include a current position and/or a currentpose. The target state may include a target position and/or a targetpose. The target position may be used to determine a destination of themobile object. The target pose may be used to determine a direction inwhich the mobile object faces at the target position. The targetposition may also be referred to as a goal.

FIG. 1 illustrates a global area 110 and a local window 120 in theglobal area 110. The global area 110 may correspond to an entire area ofgiven map data or a partial area of given map data. The local window 120may correspond to a partial area of the given map data that includes(e.g., is localized to) a current position of the mobile object in theglobal area 110.

Map data may include information such as an obstacle, a geographicalfeature, and/or a structure of a target space in which the mobile objectmoves. Here, the target space may include a real space, such as a house,an airport, a museum, an exhibition hall, and/or a warehouse, and/or mayinclude a virtual space, such as a VR space, an AR space, and/or a gamespace. The obstacle of the map data may include a fixed obstacle such asa wall, a column, and/or an ornament. The map data may provideinformation on the target space in a form of a grid map. The grid mapmay represent a space using a grid including a plurality of cells.Values of the cells may represent, for example, an obstacle, ageographical feature, and a structure of the space.

The local motion generation apparatus 100 may generate, by processingcircuitry, a global cost map 130 indicating a probability of a collisionbetween the mobile object and an obstacle in the global area 110 basedon the map data. Each pixel (or grid) of the global cost map 130 mayhave a pixel value (or grid value) corresponding to a cost. For example,the cost may indicate a probability of the mobile object colliding withan obstacle at a position corresponding to a pixel in the target space.A shaded portion in the global cost map 130 may indicate the cost. Forexample, a shaded portion 131 may correspond to an area having aprobability of a collision between the mobile object and an obstacle.Obstacles in the global cost map 130 and the global area 110 may includefixed obstacles. For example, the shaded portion 131 may be a fixedobstacle.

The local motion generation apparatus 100 may determine, by processingcircuitry, a current position 141 of the mobile object in the globalarea 110, a global goal 143 in the global area 110, and/or a global path142 in the global area 110 between the current position and the globalgoal 143 based on the global cost map 130. For example, before themobile object starts moving, the current position 141 may correspond toa start position. The local motion generation apparatus 100 mayconsider, by processing circuitry, a probability of a collision betweenthe mobile object and an obstacle based on the global cost map 130 andmay set the global path 142 such that the path of the mobile objectpasses through points and/or areas at which the probability isrelatively low. The global path 142 may be set using an algorithm suchas NF1, A*, and D*.

The global goal 143 may be set based on a target pose. The target posemay be input by a user. A destination to which the mobile object is toreach in the global area 110 may be referred to as the global goal 143.A destination to which the mobile object is to reach in a local area inthe global area 110 may be referred to as a local goal 163. The localarea may be determined using the local window 120.

The local motion generation apparatus 100 may determine, by processingcircuitry, the local window 120 corresponding to a current position ofthe mobile object in the global area 110. For example, a center of thelocal window 120 may correspond to the current position of the mobileobject. The local motion generation apparatus 100 may move, byprocessing circuitry, the local window 120 based on the current positionof the mobile object. For example, the local motion generation apparatus100 may determine, by processing circuitry, the current position of themobile object at intervals of a predetermined time, and/or may move, byprocessing circuitry, the local window 120 at intervals of apredetermined time.

The local motion generation apparatus 100 may generate, by processingcircuitry, a local cost map 150 indicating a probability of a collisionbetween the mobile object and an obstacle in the local window 120. Thelocal motion generation apparatus 100 may generate, by processingcircuitry, the local cost map 150 based on the global cost map 130 andsensor data. The sensor data may include information on an obstaclearound the mobile object. Like the global cost map 130, the local costmap 150 may include pixel values corresponding to costs.

In some example embodiments, obstacle information based on the sensordata may be applied to the cost of the local cost map 150. Thus, thelocal cost map 150 may have more real-time characteristics when comparedto the global cost map 130. The local motion generation apparatus 100may generate, by processing circuitry, the local cost map 150 byapplying the sensor data to the global cost map 130. Obstacles in thelocal cost map 150 and/or the local window 120 may include a fixedobstacle and/or a movable obstacle. The movable obstacle may include,for example, a person, a cart, an animal, and a car. For example, ashaded portion 151 may correspond to the fixed obstacle and a shadedportion 152 may correspond to the movable obstacle.

The local motion generation apparatus 100 may generate, by processingcircuitry, a local goal map 160 based on the global cost map 130, theglobal path 142, and/or the local window 120. The local goal map 160 mayrepresent a current position 161 in the local window 120, a local goal163 in the local window 120, and/or a local path 162 in the local window120 between the current position and the local goal 163. For example, aportion included in the local window 120 on the global path 142 may beset to be the local path 162, and a point farthest from the currentposition 161 on the local path 162 may be determined to be the localgoal 163.

A center of the local goal map 160 may correspond to the currentposition of the mobile object and thus, in some figures presentedherein, an indication of the current position 161 of the mobile objecton the local goal map 160 may be omitted. When the global goal 143 islocated outside the local window 120, an indication of the local goal163 may be located at a boundary of the local window 120. When theglobal goal 143 is included in the local window 120, the position of theglobal goal 143 within the local window 120 may be the same as theposition of local goal 163 within the local window 120. In this example,the global goal 143 and the local goal 163 may be located in the localwindow 120.

Hereinafter, the term “global data” may be used to refer to dataassociated with a global plane such as the global cost map 130 and theglobal path 142. Also, the term “local data” may be used to refer todata associated with a local plane such as the local cost map 150 andthe local goal map 160. The local motion generation apparatus 100 mayupdate, by processing circuitry, the global data and/or the local dataat intervals of a predetermined time. In some example embodiments, thelocal data may be more frequently updated than the global data. In otherwords, a time interval for updating the global data may be longer than atime interval for updating the local data. Through the update of theglobal data, sensor data including information on a movable obstacle maybe applied to the global data. Similarly, through the update of thelocal data, sensor data including information on a movable obstacle maybe applied to the local data.

The local motion generation apparatus 100 may determine, by processingcircuitry, a target velocity using a pre-trained neural network. Themobile object may move through the local path 162 based on the targetvelocity. The local motion generation apparatus 100 may construct, byprocessing circuitry, input data including the local cost map 150, thelocal goal map 160, and the current velocity of the mobile object andinput the input data to the neural network. The local motion generationapparatus 100 may acquire, by processing circuitry, output data of theneural network based on the input of the input data to the neuralnetwork.

The output data of the neural network may include informationcorresponding to the target velocity of the mobile object. The localmotion generation apparatus 100 may determine, by processing circuitry,the target velocity of the mobile object based on the output data of theneural network. The neural network may be pre-trained to output theoutput data corresponding to the target velocity of the mobile object inresponse to the input, into the neural network, of the input dataincluding the local cost map 150, the local goal map 160, and/or thecurrent velocity of the mobile object.

The local motion generation apparatus 100 may include processingcircuitry. In some example embodiments, the processing circuitry mayinclude hardware such as logic circuits; a hardware/softwarecombination, such as a processor executing software; or a combinationthereof. For example, a processor may include, but is not limited to, acentral processing unit (CPU), an arithmetic logic unit (ALU), a digitalsignal processor, a microcomputer, a field programmable gate array(FPGA), a System-on-Chip (SoC), a programmable logic unit, amicroprocessor, application-specific integrated circuit (ASIC), etc. Atleast a portion of the neural network may be implemented through theprocessing circuitry, for example, by software, hardware including aneural processor, or a combination of software and hardware. The neuralnetwork may include a deep neural network (DNN) including a fullyconnected network, a deep convolutional network, and/or a deep recurrentneural network. The DNN may include a plurality of layers. The pluralityof layers may include an input layer, at least one hidden layer, and anoutput layer.

In some example embodiments, the processing circuitry may train theneural network to perform a desired operation by mapping input data andoutput data that have a nonlinear relationship therebetween through deeplearning, which is a machine learning method used to solve a problemgiven from a big dataset. The deep learning may also be operate as aproblem-solving process to find a point where energy is minimized orreduced while training the neural network using provided training data.Through the deep learning, for example, supervised or unsupervisedlearning, a weight corresponding to a connection between two or moreneurons in an architecture such as a model of the neural network may beobtained, and the input data and the output data may be mapped to eachother based on the obtained weight.

In some example embodiments, the processing circuitry may train theneural network based on training data at a stage of training and/or mayuse the neural network to perform an inference action such asclassification, recognition, and/or detection of input data at a stageof inference. The neural network may be expressed as a “pre-trained”neural network, where “pre” may mean a time before input data for aninference is input to the neural network. A “start” of the neuralnetwork may mean that the neural network is ready for the inference. Forexample, the “start” of the neural network may indicate that the neuralnetwork is loaded in a memory, and/or that the input data for theinference is or may be input to the neural network after the neuralnetwork is loaded in the memory.

FIG. 2 is a block diagram illustrating a local motion generationapparatus and devices related to the local motion generation apparatusaccording to at least one example embodiment. Referring to FIG. 2, alocal motion generation apparatus 210 includes a global planner 211, alocal cost map generator 212, a local goal map generator 213, a localplanner 214, and a localizer 215. Although not shown, the local motiongeneration apparatus 210 may include memory and/or processing circuitry.

Each of the global planner 211, the local cost map generator 212, thelocal goal map generator 213, the local planner 214, and/or thelocalizer 215 of the local motion generation apparatus 210 may beimplemented by at least one software module, by processing circuitrythat may include at least one hardware module, or a combination of atleast one software module and at least one hardware module. Operationsof the global planner 211, the local cost map generator 212, the localgoal map generator 213, the local planner 214, and/or the localizer 215of the local motion generation apparatus 210 may be understood as anoperation of the local motion generation apparatus 210 and/or as anoperation of the processing circuitry included in the local motiongeneration apparatus 210.

A map server 220 may store map data. A sensor 230 may sense an obstaclearound a mobile object and output information on the sensed obstacle assensor data. The sensor data may include information on a fixed obstacleand information on a movable obstacle. The global planner 211 maygenerate a global cost map based on map data, sensor data, a targetstate of the mobile object, and/or a current state of the mobile objectand determine a global path. The target state of the mobile object maybe set by a user. The global planner 211 may determine a cost associatedwith the fixed obstacle based on the map data, determine a costassociated with the movable obstacle based on the sensor data, and/orgenerate a global cost map based on the determined costs. The globalplanner 211 may determine the global path between a current position ofthe mobile object and the global goal based on the global cost map.

The local cost map generator 212 may generate a local cost map based onthe global cost map and the sensor data. For example, the local cost mapgenerator 212 may generate the local cost map by applying the sensordata to the global cost map. The local goal map generator 213 maygenerate a local goal map based on an area corresponding to a localwindow and the global path. The local planner 214 may determine a targetvelocity of the mobile object based on the local cost map, the localgoal map, and the current velocity of the mobile object. The localplanner 214 may include a pre-trained neural network. The neural networkwill be described in detail later. The local motion generator apparatus210 may control the mobile device to move based on the target velocity.For example, the local planner 214 may generate a control commandcorresponding to the target velocity and/or deliver the control commandto a motor controller 240.

The motor controller 240 may control the mobile object to move based onthe target velocity, for example, in response to the control command.The motor controller 240 may measure and/or estimate the currentvelocity of the mobile object. For example, the motor controller 240 maymeasure the current velocity of the mobile object using a decoder of amotor of the mobile object. The current velocity of the mobile objectmay be transferred to the local planner 214 and the localizer 215. Thelocalizer 215 may determine the current state of the mobile object basedon the map data, the sensor data, and/or the current velocity of themobile object. The current state of the mobile object may be transferredto the global planner 211.

FIG. 3 illustrates a cost map according to at least one exampleembodiment. A cost map may include a global cost map 310 and a localcost map 320. The local cost map 320 may correspond to a local windowthat includes a mobile object, for example, positioned in the center ofthe local window. Real-time information obtained based on sensor datamay be applied to the local cost map 320. Thus, the local cost map 320may have more real-time characteristics and/or may include more accurateobstacle information when compared to the global cost map 310. In thecost map, each pixel value may represent a cost. The cost will befurther described with reference to FIG. 4.

FIG. 4 is a graph illustrating a cost associated with a mobile objectaccording to at least one example embodiment. Referring to FIG. 4, acost corresponding to a distance from a center 411 of a mobile object410 is represented using a nominal cost decay function 421 and adiscretized cost decay function 422. A cost value may increase as aprobability of the mobile object 410 colliding with an obstacleincreases.

An inscribed region 412 may be a region in which a collision occursirrespective of a pose of the mobile object 410. A circumscribed region413 may be a region in which a collision may or may not occur dependingon a pose of the mobile object 410. Thus, a collision occurs in a range431, a range 432 has a probability of a collision, and a collision doesnot occur in a range 433. A global path, a local path, and/or a targetvelocity may be determined such that the mobile object 410 may becontrolled to move along a path having a low cost corresponding to therange 433, and therefore a reduced probability of colliding with anobstacle.

FIG. 5 illustrates a structure of a neural network according to at leastone example embodiment. Referring to FIG. 5, a neural network 500includes an input layer 510, a first hidden layer 520, a second hiddenlayer 530, and an output layer 540. The neural network 500 maycorrespond to the local planner 214 of FIG. 2. FIG. 5 illustrates eachof the first hidden layer 520 and the second hidden layer 530 as onelayer, but in some example embodiments, the first hidden layer 520and/or the second hidden layer 530 may each include two or more layers.

The input layer 510 may receive pixel values of a local cost map and/orpixel values of a local goal map. The pixel values of the local cost mapmay include image information based on a distribution of costs. Thepixel value of the local goal map may include image information, whichmay include a local goal and/or a local path. The input layer 510 mayinclude a plurality of nodes. A number of the plurality of nodesincluded in the input layer 510 may correspond to a sum of a number ofpixels in the local cost map and a number of pixels in the local goalmap. The pixels of the local cost map and the local goal map mayrespectively match the plurality of nodes included in the input layer510.

The first hidden layer 520 may receive an output of the input layer 510.Each of the nodes of the input layer 510 may be fully connected to nodesof the first hidden layer 520. For example, when the first hidden layer520 includes M*N nodes, each of the nodes of the input layer 510 may befully connected to the M*N nodes in the first hidden layer 520 throughM*N synapses, wherein each of the M*N synapses may have a weight.

The first hidden layer 520 may be a competitive layer trained based on acompetitive learning. The first hidden layer 520 may operate based onthe pixel values of the local cost map and/or the pixel values of thelocal goal map. For example, activity levels of the nodes of the firsthidden layer 520 (such as an output of an activation function of eachnode based on the input to the node) may be determined based on imagepatterns appearing in the local cost map and/or the local goal map.Here, the image pattern may correspond to a graphical elementrepresenting a distribution of obstacles. For example, when the localcost map has an area with a large pixel value, activity levels of nodescorresponding to the area in the first hidden layer 520 may increase.Thus, the image patterns of the local cost map and/or the local goal mapmay be applied to the nodes of the first hidden layer 520. An activitylevel of a node may affect activity levels of neighboring nodes due tothe competitive learning. Such characteristic of the competitivelearning may be suitable for a local motion generation process fordetermining a path that may reduce a probability of a collision.

The second hidden layer 530 may receive an output of the first hiddenlayer 520 and/or a current velocity of a mobile object. Nodes of thesecond hidden layer 530 may be fully connected to the nodes of the firsthidden layer 520. For example, when the first hidden layer 520 includesM*N nodes, each of the nodes in the second hidden layer 530 may be fullyconnected to the M*N nodes in the first hidden layer 520 through M*Nsynapses, each of the M*N synapses having a weight. The current velocityof the mobile object may be received through at least one of the nodesof the second hidden layer 530.

The output layer 540 may generate output data of the neural network 500based on an output of the second hidden layer 530. The output data mayinclude information such as a target velocity, which may include atarget translational velocity and/or a target rotational velocity. Thelocal motion generation apparatus may determine a target velocity of themobile object based on the output data and/or control the mobile objectbased on a control command corresponding to the target velocity.

FIG. 6 illustrates a structure of a neural network according to at leastone example embodiment. Referring to FIG. 6, a neural network 600includes a convolutional layer 610, a fully connected layer 620, and anoutput layer 630. The neural network 600 may correspond to the localplanner 214 of FIG. 2. FIG. 6 illustrates the fully connected layer 620as one layer, but in some example embodiments, the fully connected layer620 may include two or more layers.

The convolutional layer 610 may extract features from a local cost mapand a local goal map. The convolutional layer 610 may extract thefeatures using a weight kernel 611, which may be one of a plurality ofweight kernels. For example, when the convolutional layer 610 includes afirst layer, a second layer, and a third layer in sequence, an edge or acorner may be detected from the first layer, a shape may be detectedfrom the second layer, and an object may be detected from the thirdlayer. Convolution and pooling may be performed in a process ofextracting the features. Through the convolutional layer 610, featurescorresponding to image patterns appearing in the local cost map and/orthe local goal map may be extracted, so that appropriate output data isgenerated based on the corresponding image pattern.

The fully connected layer 620 may receive an output of the convolutionallayer 610 and/or a current velocity of the mobile object. The currentvelocity of the mobile object may be received through at least one nodeof the fully connected layer 620. The output layer 630 may generateoutput data of the neural network 600 based on the output of the fullyconnected layer 620. The output data may include information on a targetvelocity, including a target translational velocity and/or a targetrotational velocity. The local motion generation apparatus may determinea target velocity of the mobile object based on the output data and/ormay control the mobile object based on a control command correspondingto the target velocity.

FIG. 7 illustrates a structure of a neural network according to at leastone example embodiment. Referring to FIG. 7, a neural network 700includes an input layer 710, a first competitive layer 720, and a secondcompetitive layer 730. The neural network 700 may correspond to thelocal planner 214 of FIG. 2. FIG. 7 illustrates each of the firstcompetitive layer 720 and the second competitive layer 730 as one layer,but in some example embodiments, each of the first competitive layer 720and/or the second competitive layer 730 may include two or more layers.

The input layer 710 may receive pixel values of a local cost map and/orpixel values of a local goal map. The first competitive layer 720 mayreceive an output of the input layer 710. The second competitive layer730 may generate output data of the neural network 700 based on anoutput of the first competitive layer 720. The neural network 700 mayhave an output structure that is the same as, similar to, and/ordifferent from that of the neural network 500 of FIG. 5. Other parts ofthe neural network 700 may correspond to those of the neural network500.

Due to an assignment of a value (such as a desired, selected, and/orpredetermined value) to each of nodes included in the second competitivelayer 730, an expression range of a value corresponding to output datamay be limited. In some example embodiments, for a competitive layer ofa neural network, the inputs of an input vector generated by a previouslayer (such as an input layer or a previous hidden layer) may beadjusted prior to the neural network applying an activation function. Asa first such example, a competitive layer may scale and/or offset eachinput of an input vector relative to the other inputs of the inputvector, such that the non-bias inputs sum to a particular value, such aszero or the value of the bias input. As a second such example, acompetitive layer may determine the input of an input vector that has ahighest input value relative to the other inputs of the input vector,and may scale the input values of the other inputs relative to the inputof the determined input vector. As a third such example, a competitivelayer may determine the input of an input vector that has a highestinput value relative to the other inputs of the input vector, and mayset the input values of the other inputs of the input vector to zero.Many such variations of competitive layers of the neural network may bedevised and included in some example embodiments.

The limitation of the expression range by a competitive layer mayprevent or reduce training from continuing in a wrong direction. Forexample, the second competitive layer 730 may include M*N nodes. A valuecorresponding to a cell number may be assigned to each of the nodes.Cell numbers of (m, n) may be assigned to the M*N nodes, m being aninteger ranging between 0 and M−1 inclusive and n being an integerranging between 0 and N−1 inclusive. Also, m may correspond to atranslational velocity and n may correspond to a rotational velocity. Avalue of (cell number*k) may be assigned to each of the nodes. Here, kis a scaling value and, for example, 10. A node having a cell number of(3, 3) may represent a translational velocity of 30 centimeters persecond (cm/sec) and a rotational velocity of 30 degrees per second(deg/sec).

The local motion generation apparatus may detect a peak node from thesecond competitive layer 730 and/or determine a target velocity based ona value corresponding to a cell number of the peak node. The peak nodemay include a node having an activity level exceeding a threshold and/ora node having a highest activity level among nodes. In the foregoingexample, when the cell number of the peak node is (3, 3), a targetvelocity (v, w) may be determined to be (30, 30).

When a number of peak nodes is two or more, the local motion generationapparatus may determine, by processing circuitry, a target velocitybased on values corresponding to the peak nodes and/or activity levelsof the peak nodes. For example, a ratio of activity levels of peak nodesmay be considered. When an activity level of a first peak node is 0.3, avalue corresponding to the first peak node is (30, 30), an activitylevel of a second peak node is 0.6, and a value corresponding to thesecond peak node is (60, 60), 50 is obtained from“(0.3)*(30)/(0.3+0.6)+(0.6)*(60)/(0.3+0.6)” and thus, the targetvelocity may be determined to be (50, 50).

FIG. 8 illustrates an output map according to at least one exampleembodiment. Referring to FIG. 8, a first representation of an output map810 is shown as a three-dimensional contour plot and a secondrepresentation of the output map 820 is shown as a two-dimensional planesuch as a heat map. The output maps 810 and 820 may represent adistribution of output data of the second competitive layer 730 of FIG.7 as an output layer of the neural network 700. Based on thedistribution of the output data, a value in a range (e.g., a desired,selected, and/or predetermined range) may be represented. A local motiongeneration apparatus may determine, by processing circuitry, at leastone peak node, a cell number of the peak node, and/or an activity levelof the peak node based on the representations of the output maps 810 and820.

FIG. 9 illustrates a path of a mobile object according to at least oneexample embodiment. Referring to FIG. 9, a global area 900 may include aset or sequence of global goals 901 through 906. For example, the globalarea 900 may correspond to an exhibition hall, the global goal 901 maycorrespond to an entrance, the global goal 902 may correspond to a maindisplay, the global goals 903 through 906 may correspond to observationcourses. A local motion generation apparatus may sequentially evaluatethe global goals 901 through 906 and control a mobile object to movebased on the global goals 901 through 906.

In an example embodiment, the mobile object may perform the followingoperations under a control of the local motion generation apparatus.When a visitor comes in, the mobile object may move to the global goal901, and at the global goal 901, the mobile object may perform greeting,introduction, and giving a follow-up instruction at the global goal 901.The mobile object may move to the global goal 902, and at the globalgoal 902, may introduce the observation courses with reference to themain display. The mobile object may move to each of the global goals 903through 906 in sequence, and, at each of the global goals 903 through906, the mobile object may describe one or more exhibits at the globalgoal. The mobile object may travel to the global goal 906 and, at theglobal goal 906, may output a finish greeting. While the mobile objectmoves through the global goals 901 to 906, the local motion generationapparatus may perform, by processing circuitry, at least one or some ofthe operations described with reference to FIGS. 1 through 9.

FIG. 10 is a block diagram illustrating a training apparatus accordingto at least one example embodiment. Referring to FIG. 10, a trainingapparatus 1000 includes processing circuitry 1010 and a memory 1020. Thememory 1020 includes a neural network 1025. The neural network 1025 maycorrespond to one of the neural network 500 of FIG. 5, the neuralnetwork 600 of FIG. 6, and the neural network 700 of FIG. 7. Thetraining apparatus 1000 may train, by the processing circuitry 1010, theneural network 700 based on training data. The training of the neuralnetwork 1025 may include training a parameter of the neural network1025, updating the neural network 1025, and/or updating a parameter ofthe neural network 1025.

The training data may include a training input and a training output.The training input may include a local cost map, a local goal map,and/or a current velocity of a mobile object. The training output mayinclude a target velocity, which may include a target translationalvelocity and/or a target rotational velocity. The training output maycorrespond to a label of a supervised learning. The training apparatus1000 may input the training input to the neural network 1025 and trainthe neural network 1025 such that an output of the neural network 1025corresponds to the training output.

FIG. 11 is a block diagram illustrating a local motion generationapparatus according to at least one example embodiment. Referring toFIG. 11, a local motion generation apparatus 1100 includes processingcircuitry 1110 and a memory 1120. The local motion generation apparatus1100 may perform one or more operations described or shown herein inconnection with local motion generation. The memory 1120 may beconnected to the processing circuitry 1110, and include instructionsexecutable by the processing circuitry 1110, data to be calculated bythe processing circuitry 1110, or data processed by the processingcircuitry 1110. The memory 1120 may include a non-transitorycomputer-readable medium, for example, a high-speed random access memory(RAM) and/or a non-volatile computer-readable storage medium (forexample, one or more disk storage devices, a flash memory device, orother nonvolatile solid state memory devices).

The processing circuitry 1110 may execute instructions for performingone or more operations described with reference to FIGS. 1 through 10.The processing circuitry 1110 may determine a local window correspondingto a current position of the mobile object in a global area, generate alocal cost map indicating a probability of a collision with an obstaclein the local window, generate a local goal map indicating a local pathin the local window between the current position and a local goal in thelocal window, and determine a target velocity of the mobile object basedon output data of a neural network in response to an input of input dataincluding the local cost map, the local goal map, and a current velocityof the mobile object.

FIG. 12 is a flowchart illustrating a local motion generation methodaccording to at least one example embodiment. Referring to FIG. 12, inoperation 1210, a local motion generation apparatus generates, byprocessing circuitry, a global cost map indicating a probability of acollision with an obstacle in a global area based on map data. Inoperation 1220, the local motion generation apparatus determines, byprocessing circuitry, a global path in the global area between thecurrent position and a global goal in the global area based on theglobal cost map. In operation 1230, the local motion generationapparatus determines, by processing circuitry, a local windowcorresponding to a current position of a mobile object in the globalarea. In operation 1240, the local motion generation apparatusgenerates, by processing circuitry, a local cost map indicating aprobability of a collision with an obstacle in the local window. Inoperation 1250, the local motion generation apparatus generates a localgoal map indicating a local path in the local window between the currentposition and a local goal in the local window. In operation 1260, thelocal motion generation apparatus determines, by processing circuitry, atarget velocity of the mobile object based on output data of a neuralnetwork, the output data based on an input of input data to the neuralnetwork, the input data including the local cost map, the local goalmap, and/or a current velocity of the mobile object. The descriptionmade with reference to FIGS. 1 through 11 may be applied to the localmotion generation method.

The units and/or modules described herein may be implemented usinghardware components and/or software components. For example, thehardware components may include microphones, amplifiers, band-passfilters, audio to digital convertors, and/or processing devices. Aprocessing device may be implemented using one or more hardware deviceconfigured to carry out and/or execute program code by performingarithmetical, logical, and input/output operations. The processingdevice(s) may include processing circuitry, such as, for example, acontroller, an arithmetic logic unit, a digital signal processor, amicrocomputer, a field programmable array, a programmable logic unit, amicroprocessor, and/or any other device capable of responding to and/orexecuting instructions in a defined manner. The processing device mayrun an operating system (OS) and one or more software applications thatrun on the OS. The processing device also may access, store, manipulate,process, and/or create data in response to execution of the software.For simplicity, the description of a processing device is used assingular; however, one skilled in the art will appreciate that aprocessing device may include multiple processing elements and/ormultiple types of processing elements. For example, a processing devicemay include multiple sets and/or types of processing circuitry, such asmultiple processors and/or a processor and a controller. In addition,different processing configurations are possible, such an architecturefeaturing two or more parallel processors.

The software may include a computer program, a piece of code, aninstruction, or some combination thereof, to independently orcollectively instruct and/or configure the processing device to operateas desired, thereby transforming the processing device into a specialpurpose processor. Software and/or data may be embodied permanently ortemporarily in any type of machine, component, physical or virtualequipment, computer storage medium or device, and/or in a propagatedsignal wave capable of providing instructions or data to or beinginterpreted by the processing device. The software also may bedistributed over network coupled computer systems so that the softwareis stored and executed in a distributed fashion. The software and datamay be stored by one or more non-transitory computer readable recordingmediums.

The methods according to the above-described example embodiments may berecorded in non-transitory computer-readable media including programinstructions to implement various operations of the above-describedexample embodiments. The media may also include, alone or in combinationwith the program instructions, data files, data structures, and thelike. The program instructions recorded on the media may be thosespecially designed and constructed for the purposes of exampleembodiments, or they may be of the kind well-known and available tothose having skill in the computer software arts. Examples ofnon-transitory computer-readable media include magnetic media such ashard disks, floppy disks, and magnetic tape; optical media such asCD-ROM discs, DVDs, and/or Blu-ray discs; magneto-optical media such asoptical discs; and hardware devices that are specially configured tostore and perform program instructions, such as read-only memory (ROM),random access memory (RAM), flash memory (e.g., USB flash drives, memorycards, memory sticks, etc.), and the like. Examples of programinstructions include both machine code, such as produced by a compiler,and files containing higher level code that may be executed by thecomputer using an interpreter. The above-described devices may beconfigured to act as one or more software modules in order to performthe operations of the above-described example embodiments, or viceversa.

Some example embodiments include a machine learning component, such as aneural network. As an example, the processing circuitry may train theneural network that is trained on a set of training data by, forexample, a supervised, unsupervised, and/or reinforcement learningmodel, and wherein the processing circuitry may process a feature vectorto provide output based upon the training. Such neural networks mayutilize a variety of neural network organizational and processingmodels, such as convolutional neural networks (CNN), deconvolutionalneural networks, recurrent neural networks (RNN) optionally includinglong short-term memory (LSTM) units and/or gated recurrent units (GRU),stacked neural networks (SNN), state-space dynamic neural networks(SSDNN), deep belief networks (DBN), generative adversarial networks(GANs), and/or restricted Boltzmann machines (RBM). Alternatively oradditionally, the processing circuitry may utilize forms of artificialintelligence and/or machine learning other than a neural network, suchas, for example, linear and/or logistic regression, statisticalclustering, Bayesian classification, decision trees, dimensionalityreduction such as principal component analysis, and expert systems;and/or combinations thereof, including ensembles such as random forests.

The use of a machine learning model, such as a neural network, todetermine and cause a local motion of a mobile object may present someadvantages with respect to other techniques for causing local motion,such as analytic solutions provided by objective functions. As a firstsuch example, a neural network may produce an output, such as a targetvelocity for the mobile object, using fewer computational resources thanother techniques; for example, an objective function may have toevaluate a large number of factors through a comparatively heavyanalytic methodology, but a trained neural network may provide theoutput though feed-forward propagation. Processing efficiency gains suchas may be achieved by a neural network may translate into a faster localmotion generating process, which may be desirable and/or advantageous inscenarios that depend upon a rapid response to variable events, such asthe field of autonomous navigation. As a second such example, efficiencygains may enable the processing circuitry to cause local motion of themobile object in a manner that may conserve computation, which mayenable lower-spec computing hardware to satisfy the circumstances of anapplication, and/or enable lower-cost computational hardware to besatisfactorily used for such tasks. Such efficiency gains may also, forexample, permit the completion of the local motion determination andcausation with a lower expenditure of stored power, such as a battery ora fuel supply, thereby promoting energy conservation and extending aduration between refueling. Many such technical effects may improve thefunctioning of a device in accordance with the present disclosure.

A number of example embodiments have been described above. Nevertheless,it should be understood that various modifications may be made to theseexample embodiments. For example, suitable results may be achieved ifthe described techniques are performed in a different order and/or ifcomponents in a described system, architecture, device, or circuit arecombined in a different manner and/or replaced or supplemented by othercomponents or their equivalents. Accordingly, other implementations arewithin the scope of the following claims.

What is claimed is:
 1. A method of generating a local motion for amobile object, the method comprising: determining, by processingcircuitry, a local window as a subset of a global area such that acenter of the local window represents a current position of the mobileobject within the subset of the global area; generating, by theprocessing circuitry, a local cost map indicating a probability of acollision of the mobile object with an obstacle in the local window;generating, by the processing circuitry, a local goal map indicating alocal path in the local window between the current position of themobile object and a local goal in the local window; determining, by theprocessing circuitry, a target velocity of the mobile object using aneural network trained to output the target velocity in response toinput thereto of the local cost map, the local goal map, and a currentvelocity of the mobile object, wherein the neural network utilizes thepixel values within the local cost map and pixel values within the localgoal map to determine the target velocity; and controlling the mobileobject to navigate through the local path from the current position tothe local goal based on the target velocity determined through thetrained neutral network.
 2. The method of claim 1, further comprising:generating a global cost map indicating a probability of a collision ofthe mobile object with an obstacle in the global area based on map data.3. The method of claim 2, wherein the generating of the local cost mapis based on sensor data associated with an obstacle around the mobileobject and the global cost map.
 4. The method of claim 2, furthercomprising: determining, by the processing circuitry, a global path inthe global area between the current position and a global goal in theglobal area based on the global cost map.
 5. The method of claim 4,wherein the generating of the local goal map is based on the global pathand the local window.
 6. The method of claim 1, wherein the neuralnetwork includes a competitive layer that operates based on pixel valuesof the local cost map and pixel values of the local goal map.
 7. Themethod of claim 1, wherein the neural network includes, an input layerthat receives pixel values of the local cost map and pixel values of thelocal goal map, a first hidden layer that receives an output of theinput layer, a second hidden layer that receives an output of the firsthidden layer and the current velocity of the mobile object, and anoutput layer that generates output data of the neural network based onan output of the second hidden layer.
 8. The method of claim 7, whereinthe first hidden layer is a competitive layer trained based on acompetitive learning.
 9. The method of claim 7, wherein nodes of theinput layer are fully connected to nodes of the first hidden layer. 10.The method of claim 9, wherein a number of the nodes of the input layercorresponds to a sum of a number of pixels in the local cost map and anumber of pixels in the local goal map.
 11. The method of claim 1,wherein the neural network includes, a convolutional layer that extractsfeatures from the local cost map and the local goal map, a fullyconnected layer that receives an output of the convolutional layer andthe current velocity of the mobile object, and an output layer thatgenerates output data of the neural network based on an output of thefully connected layer.
 12. The method of claim 1, wherein the neuralnetwork includes, an input layer that receives pixel values of the localcost map and pixel values of the local goal map, a first competitivelayer that receives an output of the input layer, and a secondcompetitive layer that generates the output data of the neural networkbased on an output of the first competitive layer.
 13. The method ofclaim 12, wherein a value in a predetermined range is represented basedon a distribution of the output data of the neural network.
 14. A methodof generating a local motion for a mobile object, the method comprising:determining, by processing circuitry, a local window corresponding to acurrent position of the mobile object in a global area; inputting to aneural network, by the processing circuitry, input data including alocal cost map indicating a probability of a collision with an obstaclein the local window, a local goal map indicating a local path in thelocal window between the current position and a local goal in the localwindow, and a current velocity of the mobile object; and determining, bythe processing circuitry, a target velocity of the mobile object basedon output data of the neural network in response to an input of theinput data.
 15. An apparatus for generating a local motion for a mobileobject, the apparatus comprising: processing circuitry; and a memorycomprising an instruction to be read by the processing circuitry,wherein when the instruction is executed by the processing circuitry,the processing circuitry is configured to, determine a local windowcorresponding to a current position of the mobile object in a globalarea; generate a local cost map indicating a probability of a collisionof the mobile object with an obstacle in the local window; generate alocal goal map indicating a local path in the local window between thecurrent position and a local goal in the local window; and determine atarget velocity of the mobile object based on output data of a neuralnetwork, the output data of the neural network based on an input ofinput data to the neural network, the input data including the localcost map, the local goal map, and a current velocity of the mobileobject.
 16. The apparatus of claim 15, wherein the processing circuitryis further configured to, generate a global cost map indicating aprobability of a collision of the mobile object with an obstacle in theglobal area based on map data; generate the local cost map based onsensor data associated with an obstacle around the mobile object and theglobal cost map; and determine a global path in the global area betweenthe current position and a global goal in the global area based on theglobal cost map.
 17. The apparatus of claim 15, wherein the neuralnetwork includes, an input layer that receives pixel values of the localcost map and pixel values of the local goal map, a first hidden layerthat receives an output of the input layer, a second hidden layer thatreceives an output of the first hidden layer and the current velocity ofthe mobile object, and an output layer that generates the output data ofthe neural network based on an output of the second hidden layer. 18.The apparatus of claim 15, wherein the neural network includes, aconvolutional layer that extracts features from the local cost map andthe local goal map, a fully connected layer that receives an output ofthe convolutional layer and the current velocity of the mobile object,and an output layer that generates the output data of the neural networkbased on an output of the fully connected layer.
 19. The apparatus ofclaim 15, wherein the neural network includes, an input layer thatreceives pixel values of the local cost map and pixel values of thelocal goal map, a first competitive layer that receives an output of theinput layer, and a second competitive layer that generates the outputdata of the neural network based on an output of the first competitivelayer.